Advancements in computer and electronic technology have created smaller, more powerful computer systems. Accordingly, new categories of computer systems, such as handheld computers, have also been developed. Further, these computer systems are well suited to interact with other computer systems to exchange data.
Additionally, with the advent of more powerful computers, new types of data have been created. Some examples of the new data types created can include streaming media (e.g., audio or video files), MP3 files, Real Audio, and the like. Nearly all of the streaming media data types can be distributed to a computer system via a digital medium, such as CDs, DVDs, floppy disks, SD (secure digital) cards, and the like, and then replayed on the appropriate multimedia device. Further, it is well known that the streaming media types are commonly distributed to computer systems via the Internet, provided the computer system is so enabled.
However, the speed with which the streaming media data type is played rarely equals the rate with which the streaming media is received. For example, when a computer system is utilizing a CD/DVD multimedia player to play music or a movie, it is common to see and/or hear the CD/DVD player start and stop during playback. It is also common to see the work indicator light related to the operation of the CD/DVD player flash on and off in response to the player repeatedly starting and stopping. This starting and stopping is caused, in part, by the incoming rate of the streaming media (from a multimedia device or stored file) being of a rate which can be unequal to or incompatible with the rate of output (media replayed via a video monitor or via audio speakers).
When the incoming rate of the streaming media is too slow in comparison to the output, the cache or allotted memory becomes empty. Until additional data is received, the video or audio being played then pauses while waiting for more incoming data. When the incoming rate of the streaming media is too fast, in comparison to the output, the cache or allotted memory becomes full. Until the cache or allotted memory becomes un-full, the multimedia device providing the incoming data pauses until more cache or memory space becomes available. These inequalities in incoming and outgoing streaming media rates can cause the replayed or output streaming media to have visible and audible hesitations and interruptions when the streaming media is video, and audible hesitations and interruptions when the streaming media is audio. This distortion of the streaming media during presentation can degrade most user's multimedia experience.
With regard to streaming media incoming over the Internet, and then outputted to a user, it is well known that the transmission of data, e.g., nearly any kind of data, is packet based. This means that the data, almost always regardless of size, is figuratively chopped up into smaller bits of data, called packets. It is well known in the art that an average packet size is about 1000 bytes. These packets of approximately 1000 bytes are then sent from a sending computer system to a receiving computer system, one after another, and then outputted to a user. There are many factors which govern the speed with which the packets can be received. Some of those factors can include, but are not limited to, the sending computer system's power and capacities, the receiving computer system's power and capacities, type and speed of the intercommunication connection between the computer systems, and many others.
Once some of the data packets are received in a cache or allotted memory space, outputting can commence. However, if the sending computer system can't keep up with the streaming data output of the outputting computer system, the cache or allotted memory can become empty. This can cause the outputting of the streaming media to hesitate and to have interruptions. Further, by requiring more packets at a faster rate in an attempt to refill the cache or allotted memory space, this can cause an excessive load to be placed upon the sending computer and/or the network, which can in some circumstances, cause the sending computer system or the network to which it is connected to bog down under the extra load. On the other hand, if too many data packets are required before outputting can commence, some users may find this somewhat extended wait time before outputting highly irritating.
Thus a need exists for a method of media caching which controls the level of the cache. A further need exists for a media caching method that provides an optimum cache level, relative to the media type it is caching. An additional need exists for a method of media caching which monitors the cache level. Another need exists for a method of media caching which can regulate the rate of incoming media in response to the monitored cache level.